Leadtools.Forms.Auto Namespace > AutoFormsEngine Class > AutoFormsEngine Constructor : AutoFormsEngine Constructor(IMasterFormsRepository,List<IOcrEngine>,BarcodeEngine,Int32,Int32,Boolean) |
public AutoFormsEngine( IMasterFormsRepository repository, List<IOcrEngine> ocrEngines, BarcodeEngine barcodeEngine, int minimumConfidenceKnownForm, int minimumConfidenceRecognized, bool recognizeFirstPageOnly )
'Declaration Public Function New( _ ByVal repository As IMasterFormsRepository, _ ByVal ocrEngines As List(Of IOcrEngine), _ ByVal barcodeEngine As BarcodeEngine, _ ByVal minimumConfidenceKnownForm As Integer, _ ByVal minimumConfidenceRecognized As Integer, _ ByVal recognizeFirstPageOnly As Boolean _ )
'Usage Dim repository As IMasterFormsRepository Dim ocrEngines As List(Of IOcrEngine) Dim barcodeEngine As BarcodeEngine Dim minimumConfidenceKnownForm As Integer Dim minimumConfidenceRecognized As Integer Dim recognizeFirstPageOnly As Boolean Dim instance As New AutoFormsEngine(repository, ocrEngines, barcodeEngine, minimumConfidenceKnownForm, minimumConfidenceRecognized, recognizeFirstPageOnly)
It is the user's responsibility to dispose of this object when it is no longer needed by calling Dispose.
ocrEngines should be provided. If it is null, an exception is thrown.
If barcodeEngine is null, Leadtools.Forms.Recognition.Barcode.BarcodeObjectsManager will not be used for recognition and Leadtools.Forms.Processing.BarcodeFormField will not be processed.
The recognition Object Managers will be set to the managers used to generate the Master Forms in the repository.
Using Multiple threads is recommended since it speeds up form recognition and processing.
Important: Different OCR engines might have slight differences in form alignment and recognition. Therefore, it is recommended to use the same Leadtools.Forms.Ocr.OcrEngineType when generating the master forms and when recognizing and processing forms.
Imports Leadtools Imports Leadtools.Codecs Imports Leadtools.Forms Imports Leadtools.Forms.Auto Imports Leadtools.Forms.Ocr Imports Leadtools.Forms.Recognition Imports Leadtools.Forms.Processing Imports Leadtools.Barcode Public Sub AutoFormRunThreadAutoAll() Dim filesNames As List(Of String) = New List(Of String)() filesNames.Add(Path.Combine(LEAD_VARS.ImagesDir, "Forms\Images\FCC-107_OCR_Filled.tif")) Dim root As String = Path.Combine(LEAD_VARS.ImagesDir, "Forms\MasterForm Sets\OCR_ICR") Dim codecs As RasterCodecs = New RasterCodecs() 'create repository Dim repository As DiskMasterFormsRepository = New DiskMasterFormsRepository(codecs, root) Dim ocrEngines As List(Of IOcrEngine) = New List(Of IOcrEngine)() Dim ocrEngine As IOcrEngine 'creates four threads For i As Integer = 0 To 3 ' True to use the LEADTOOLS Thunk Server if the engine is not Advantage ocrEngine = OcrEngineManager.CreateEngine(OcrEngineType.Advantage, True) ocrEngine.Startup(Nothing, Nothing, Nothing, LEAD_VARS.OcrAdvantageRuntimeDir) ocrEngines.Add(ocrEngine) Next i Dim engineBarcode As BarcodeEngine = New BarcodeEngine() 'create AutoForm Engine Dim autoEngine As AutoFormsEngine = New AutoFormsEngine(repository, ocrEngines, engineBarcode, 30, 80, True) Try For Each formFileName As String In filesNames 'recognize and process the form Dim result As AutoFormsRunResult = autoEngine.Run(formFileName, Nothing) Next formFileName Finally autoEngine.Dispose() For Each engine As IOcrEngine In ocrEngines engine.Shutdown() engine.Dispose() Next engine ocrEngines.Clear() End Try End Sub Public NotInheritable Class LEAD_VARS Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images" Public Const OcrAdvantageRuntimeDir As String = "C:\LEADTOOLS 18\Bin\Common\OcrAdvantageRuntime" End Class
using Leadtools; using Leadtools.Codecs; using Leadtools.Forms; using Leadtools.Forms.Auto; using Leadtools.Forms.Ocr; using Leadtools.Forms.Recognition; using Leadtools.Forms.Processing; using Leadtools.Barcode; public void AutoFormRunThreadAutoAll() { List<string> filesNames = new List<string>(); filesNames.Add(Path.Combine(LEAD_VARS.ImagesDir, "Forms\\Images\\FCC-107_OCR_Filled.tif")); string root = Path.Combine(LEAD_VARS.ImagesDir, @"Forms\MasterForm Sets\OCR_ICR"); RasterCodecs codecs = new RasterCodecs(); //create repository DiskMasterFormsRepository repository = new DiskMasterFormsRepository(codecs, root); List<IOcrEngine> ocrEngines = new List<IOcrEngine>(); IOcrEngine ocrEngine; //creates four threads for (int i = 0; i < 4; i++) { // last parameter true to use the LEADTOOLS Thunk Server // if the engine is not Advantage ocrEngine = OcrEngineManager.CreateEngine(OcrEngineType.Advantage, true); ocrEngine.Startup(null, null, null, LEAD_VARS.OcrAdvantageRuntimeDir); ocrEngines.Add(ocrEngine); } BarcodeEngine barcodeEngine = new BarcodeEngine(); //create AutoForm Engine AutoFormsEngine autoEngine = new AutoFormsEngine(repository, ocrEngines, barcodeEngine, 30, 80, true); try { foreach (string formFileName in filesNames) { //recognize and process the form AutoFormsRunResult result = autoEngine.Run(formFileName, null); } } finally { autoEngine.Dispose(); foreach (IOcrEngine engine in ocrEngines) { engine.Shutdown(); engine.Dispose(); } ocrEngines.Clear(); } } static class LEAD_VARS { public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images"; public const string OcrAdvantageRuntimeDir = @"C:\LEADTOOLS 18\Bin\Common\OcrAdvantageRuntime"; }